<?php

Yii::import('application.modules.nutricion.models._base.BaseAlimentos');

class Alimentos extends BaseAlimentos {

    /**
     * @return Alimentos
     */
    public static function model($className = __CLASS__) {
        return parent::model($className);
    }

    public static function label($n = 1) {
        return Yii::t('app', 'Alimentos|Alimentoses', $n);
    }

    public function attributeLabels() {
        return array(
            'id' => Yii::t('app', 'ID'),
            'categoria_id' => Yii::t('app', 'Categoria'),
            'nombre' => Yii::t('app', 'Nombre'),
            'descripcion' => Yii::t('app', 'Descripcion'),
            'subcategoria_id' => Yii::t('app', 'Subcategoria'),
            'categoria' => null,
            'subcategoria' => null,
            'cartaAlimentoses' => null,
            'porcionPersonals' => null,
            'valoresNutricionales' => null,
        );
    }

//    public function buscar_alimento($idCategoria = null, $idSubcategoria = null, $idAlimento) {
//
//        $command = Yii::app()->db->createCommand();
//
////       SELECT `nombre` FROM `alimentos` WHERE `nombre` like 'i%'
//        if ($idAlimento != null && $idCategoria == null && $idSubcategoria == null) { // solo cuando envia el alimento
//            $command->select('a.nombre as nombre')
//                    ->from('alimentos a')
//                    ->where("a.nombre like '%:idAlimento'", array(':idAlimento' => $idAlimento))
//                    ->order('a.nombre ASC')
//            ;
//        } elseif ($idAlimento != null && $idCategoria != null && $idSubcategoria == NULL) { // cuando envia alimento y categoria
////       SELECT `nombre` FROM `alimentos` WHERE `nombre` like 'i%' and `categoria_id`=2
//            $command->select('a.nombre as nombre')
//                    ->from('alimentos a')
//                    ->where("a.nombre like '%:idAlimento'", array(':idAlimento' => $idAlimento))
//                    ->andWhere('a.categoria_id = :idCategoria', array(':idCategoria' => $idCategoria))
//                    ->order('a.nombre ASC')
//            ;
//        } elseif ($idAlimento != null && $idCategoria != null && $idSubcategoria != NULL) {
////      SELECT `nombre` FROM `alimentos` WHERE `nombre` like 'i%' and `categoria_id`=2 and `subcategoria_id` =1
//            $command->select('a.nombre as nombre')
//                    ->from('alimentos a')
//                    ->where("a.nombre like '%:idAlimento'", array(':idAlimento' => $idAlimento))
//                    ->andWhere('a.categoria_id = :idCategoria', array(':idCategoria' => $idCategoria))
//                    ->andWhere('a.subcategoria_id = :idSubCategoria', array(':idSubCategoria' => $idSubCategoria))
//                    ->order('a.nombre ASC')
//            ;
//        }
//        $options = $command->queryAll();
//    }

//     public function relations() {
//        array_merge(  parent::relations(),array(
//            'categoria' => array(self::BELONGS_TO, 'Categoria', 'categoria_id'),
//            'subcategorias' => array(self::BELONGS_TO, 'Subcategoria', 'categoria_id'),
//            
//        ));
//    }

    public function searchParams() {
        return array(
            'nombre',
            'descripcion',
            'categoria_id',
            'subcategoria_id',
        );
    }
    
      public function search() {
        $criteria = new CDbCriteria;
        $sort = new CSort;

        $criteria->with = array('categoria', 'subcategoria');
//        $criteria->join = 'LEFT OUTER JOIN cruge_user ON cruge_user.iduser = t.owner_id';
        $criteria->compare('t.nombre', $this->nombre, true, 'OR');
        $criteria->compare('t.descripcion',$this->descripcion, true, 'OR');
        $criteria->compare('categoria.nombre', $this->categoria_id, true, 'OR');
        $criteria->compare('subcategoria.nombre', $this->subcategoria_id, true, 'OR');
        /* Sort criteria */
        $sort->attributes = array(
            'nombre' => array(
                'asc' => 't.nombre asc',
                'desc' => 't.nombre desc',
            ),
//            '*',
        );
        $sort->defaultOrder = 't.nombre asc';

//        var_dump($criteria);
//        die();
        return new CActiveDataProvider($this, array(
            'criteria' => $criteria,
        ));
    }

    
}
